Loading...

Marc Guillén Saltó

Quiero entrar en Azeroth y olvidarme de este mundo por un rato.

About me

I am Marc Guillén and I have taken part of the programming team. I'have been programming for 5 years now, mainly in C++ and C#.

During the first months of the project I focused on the engine animation system. Since then, I have been working as a gameplay programmer, more specifcly in the Bosses of the game.

Contribution


Project Overview

  • Engine programming
    • Skeletal animation
    • Animator controller graph editor
  • Gameplay programming
    • Player controller 1st iteration
    • Bosses
      • Boss decision making
      • Leshen
      • Ciri

Engine programming

Skeletal Animation

During the subject of Video Game Engines. Together with Axel Alavedra, I developed an animation system. I was in charge of managing the animation resources through an animation controller with which through a timeline I was interpolating the values ​​of the animation keys and applying transformations to the bones of the model.

After that. I structured the controller like a state machine, where each state has its own animation clip and playback speed. These states may or may not be connected to each other by transitions which allow the passage from one animation state to another if the specific conditions are met.

...

Animator controller Graph Editor

At the start of the Project 3 assignement I said to myself: I would very much like to make an animation controller editor like UnityEngine's. So using the NodeEditor library I created a graphical interface to edit an animation controller. In addition, I made the transitions between animation states more sophisticated adding a parameter list to enable diferent kind of conditions.

Features:

  • Animation state management.
  • States transitions management.
  • AnimationController parameters.
  • Transition conditions.
  • Play mode visualization.

Gameplay programming

Player controller 1st iteration

After developing in engine, I was in charge of programming the basic movement of the player for the vertical slice. The engine was still very green but we managed to make some progress.

...

Bosses

For the Alpha, I abandoned my progress with the player controller to start programming the first boss in the game. But first of all, I thought about how the game bosses would make decisions.

... ...

During the game cycle the boss receives a series of inputs such as player distances, cooldowns, player states, phase ... Thanks to these inputs, a series of probabilities are established for each action. Then the boss chooses an action based on these probabilities and launches it, updates it and ends.

Leshen

The first boss of the game is Leshen. During combat, the boss launches flocks of crows, summons roots that chase and root players, and transforms into a cloud of crows dealing damage per second.

... ... ... ...

Ciri

The second and last boss of the video game is Ciri. During the fight Ciri rises up generating a tornado around her, with which she lifts several rocks. Then phase 1 begins.

Ciri summons two clones, who approach players through a dash. When clones are close to players they use two abilities. If both players are close to a clone, it gives a shout that repels players. If there is only one player near the clone, it will launch a 3 punch combo in a row. For every clone that dies, another appears. After killing two clones, phase 2 begins.

...

In phase two an extra clone appears and Ciri will start throwing the rocks raised by the tornado, these rocks can harm both players and clones. In addition, during this phase rocks fall from the sky.

...

In the third and last phase the terrain begins to be destroyed by reducing the combat zone, after defeating the last three clones, the tornado vanishes and ciri falls defeated to the ground.

...